package bean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.faces.model.SelectItem;

import model.Aluno;
import model.Curso;
import dao.DAOCurso;

@ManagedBean(name="MBCurso")
public class MBCurso {
	private Curso beanCurso;
	private Aluno beanAluno;
	private DAOCurso daoCurso;
	private DataModel<Curso> listaCurso;
	private List<SelectItem> itens;


	public MBCurso(){
		beanCurso = new Curso();
		beanAluno = new Aluno();
		daoCurso = new DAOCurso();
	}

	public Curso getBeanCurso() {
		return beanCurso;
	}

	public void setBeanCurso(Curso beanCurso) {
		this.beanCurso = beanCurso;
	}
	
	public Aluno getBeanAluno() {
		return beanAluno;
	}

	public void setBeanAluno(Aluno beanAluno) {
		this.beanAluno = beanAluno;
	}

	public DAOCurso getDaoCurso() {
		return daoCurso;
	}

	public void setDaoCurso(DAOCurso daoCurso) {
		this.daoCurso = daoCurso;
	}

	public DataModel<Curso> getListaCurso() {
		return listaCurso;
	}

	public void setListaCurso(DataModel<Curso> listaCurso) {
		this.listaCurso = listaCurso;
	}
	
	public List<SelectItem> getItens() {
		return itens;
	}

	public void setItens(List<SelectItem> itens) {
		this.itens = itens;
	}
	
	public String prepararAdd(){
		beanCurso = new Curso();
		return "addcurso";
	}
	
	public void save(){
		daoCurso.save(beanCurso);
		beanCurso = new Curso();
	}
	
	public DataModel<Curso> getListarCurso(){
		List<Curso> list = daoCurso.listar();
		listaCurso = new ListDataModel<Curso>(list);
		return listaCurso;
	}	
	
	public String prepararUp(){
		beanCurso = (Curso)(listaCurso.getRowData());
		return "alterarcurso";
	}
	
	public String prepararSelect(){
		Curso curso = (Curso)(listaCurso.getRowData());
		beanAluno.setCurso(curso);
		
		return "a";
	}
	
	public List<Curso> getListaMenu(){
		List<Curso> lista = daoCurso.listar();
		return lista;
	}
	
	public List<SelectItem> getSelectCursos(){
		List<Curso> list = daoCurso.listar();
		itens = new ArrayList<SelectItem>(list.size());
		for(Curso c : list){
			itens.add(new SelectItem(c.getCodCurso(), c.getNomeCurso()));
		}
		return itens;
	}
	
	public void update(){
		daoCurso.update(beanCurso);
	}
	
	public void delete(){
		beanCurso = (Curso)(listaCurso.getRowData());
		daoCurso.delete(beanCurso);
	}
	
	public void auto(int cod){
		beanCurso = daoCurso.search(cod);
	}

}
